#include "StdAfx.h"
#include "denumentity.h"

DEnumEntity::DEnumEntity(QObject *parent)
	: DAbstractEntity(parent)
{
	m_eEntityType = eEnumeration;
}

DEnumEntity::~DEnumEntity()
{

}

void DEnumEntity::addParam(const QString& name, EnumType* pValue)
{
	EnumType realValue;

	if(!pValue)
	{
		realValue = m_params.size();
	}
	else
	{
		realValue = *pValue;
	}

	m_params.append(QPair<QString, EnumType>(name, realValue));
}

bool DEnumEntity::removeParam(const QString& name)
{
	// not implemented for now
	return true;
}

const DEnumEntity::ParameterList& DEnumEntity::params() const
{
	return m_params;
}

void DEnumEntity::removeAll()
{
	m_params.clear();
}

void DEnumEntity::setParamValue(const QString& name, EnumType value)
{
	// not implemented for now
}

DEnumEntity::EnumType DEnumEntity::param(const QString& name)
{
	EnumType result;

	QPair<QString, EnumType> param;
	foreach(param, m_params)
	{
		if(param.first == name)
		{
			result = param.second;
			break;
		}
	}

	return result;
}

int DEnumEntity::count() const
{
	return m_params.size();
}

QString DEnumEntity::toString() const
{
	return QString();
}